Serial RapidIO (sRIO) is a serial interconnect technology employed in many packet-based communication systems. These communications systems include source devices, destination devices, and packet switches that communicate with each other through communication links. One feature of sRIO that facilitates communication in these packet switches involves virtual channels. Virtual channels provide a mechanism for allocating an output bandwidth of an output port of the packet switch among unrelated data streams. In this mechanism, each virtual channel of an output port is allocated a guaranteed minimum portion of the output bandwidth of the output port.
As specified in the sRIO 2.0 standard, a packet switch may be implemented such that an output port of the packet switch has a bandwidth reservation precision. The bandwidth reservation precision specifies the number of bandwidth reservation precision bits used in allocating a portion of an output bandwidth of an output port to a virtual channel of the output port. As also specified in the sRIO 2.0 standard, the bandwidth reservation precision may range from eight to sixteen bits and is determined by a bandwidth reservation precision value stored in a read-only register. Accordingly, the bandwidth reservation precision of an output port is implementation dependent and may not be modified. Further, in some packet-based communication systems, the bandwidth reservation precision range as specified in the sRIO 2.0 standard does not provide a desired precision for allocating a portion of the output bandwidth of an output port to a virtual channel.
In light of the above, a need exists for an improved system and method of routing data packets through a packet switch by using virtual channels.